Scenarios/Prometheus & Grafana/Terraform/log_analytics-dcr.tf (50 lines of code) (raw):

resource "azurerm_monitor_data_collection_rule" "dcr-log-analytics" { name = "dcr-log-analytics" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location data_collection_endpoint_id = azurerm_monitor_data_collection_endpoint.dce-log-analytics.id kind = "Linux" depends_on = [time_sleep.wait_60_seconds] destinations { log_analytics { name = "log-analytics" workspace_resource_id = azurerm_log_analytics_workspace.workspace.id } } data_flow { streams = ["Microsoft-ContainerInsights-Group-Default", "Microsoft-Syslog"] destinations = ["log-analytics"] } data_sources { syslog { name = "syslog-data-source" facility_names = ["*"] # ["auth", "authpriv", "cron", "daemon", "mark", "kern", "local0", "local1", "local2", "local3", "local4", "local5", "local6", "local7", "lpr", "mail", "news", "syslog", "user", "uucp"] log_levels = ["Debug", "Info", "Notice", "Warning", "Error", "Critical", "Alert", "Emergency", ] streams = ["Microsoft-Syslog"] } extension { extension_name = "ContainerInsights" name = "ContainerInsightsExtension" streams = ["Microsoft-ContainerInsights-Group-Default"] extension_json = jsonencode( { dataCollectionSettings = { enableContainerLogV2 = true interval = "1m" namespaceFilteringMode = "Include" # "Exclude" "Off" namespaces = ["kube-system", "default"] } } ) } } } resource "azurerm_monitor_data_collection_rule_association" "dcra-dcr-log-analytics-aks" { name = "dcra-dcr-log-analytics-aks" target_resource_id = azurerm_kubernetes_cluster.aks.id data_collection_rule_id = azurerm_monitor_data_collection_rule.dcr-log-analytics.id } # DCR creation should be started about 60 seconds after the Log Analytics workspace is created # This is a workaround, could be fixed in the future resource "time_sleep" "wait_60_seconds" { create_duration = "60s" depends_on = [azurerm_log_analytics_workspace.workspace] }